/**
 * @Description 全局HTTP状态码常量
 * @Date 2023/5/20 周六 11:47
 * @Author 酷奇 <vx：17685112557>
 */

export enum HttpStatusCode {
  /**
   * 处理业务逻辑成功
   */
  Ok = 200,
  /**
   * 处理业务逻辑失败
   */
  Fail = 400,
  /**
   * 未授权，请重新登录
   */
  Unauthorized = 401,
  /**
   * 拒绝访问，没有权限
   */
  Forbidden = 403,
  /**
   * 请求错误，未找到该资源
   */
  NotFound = 404,
  /**
   * 请求方法有误
   */
  MethodNotAllowed = 405,
  /**
   * 请求超时
   */
  RequestTimeout = 408,
  /**
   * 服务器端出错
   */
  InternalServerError = 500,
  /**
   * 请求方法未实现
   */
  NotImplemented = 501,
  /**
   * 网关或代理问题
   */
  BadGateway = 502,
  /**
   * 服务器故障：宕机、超载
   */
  ServiceUnavailable = 503,
  /**
   * 网络超时
   */
  GatewayTimeout = 504,
  /**
   * 服务器不支持请求所使用的 HTTP 版本
   */
  HttpVersionNotSupported = 505,
}

export const GetStatusMsg = (code: number): string => {
  switch (code) {
    case HttpStatusCode.Ok:
      return '请求成功'
    case HttpStatusCode.Fail:
      return '错误的请求'
    case HttpStatusCode.Unauthorized:
      return '登录过期，请重新登录'
    case HttpStatusCode.Forbidden:
      return '你无权访问该页面'
    case HttpStatusCode.NotFound:
      return '请求错误，未找到该资源'
    case HttpStatusCode.MethodNotAllowed:
      return '请求方法有误'
    case HttpStatusCode.RequestTimeout:
      return '请求超时'
    case HttpStatusCode.InternalServerError:
      return '服务器出错'
    case HttpStatusCode.NotImplemented:
      return '请求方法未实现'
    case HttpStatusCode.BadGateway:
      return '请检查网关或代理问题'
    case HttpStatusCode.ServiceUnavailable:
      return '服务器故障'
    case HttpStatusCode.GatewayTimeout:
      return '网络超时'
    case HttpStatusCode.HttpVersionNotSupported:
      return '服务器不支持该HTTP版本'
    default:
      return `其他连接错误 --${code}`
  }
}
